package compile

type TypeInfo interface {
	vfyTypeInfo()
}

type typeInfo struct{}

func (info *typeInfo) vfyClsInfo() {}

type ClassInfo struct {
	typeInfo

	ClassName string

	ClassEntry *ClassEntry

	SuperClassInfo *TypeInfo
	InterfaceInfos []*TypeInfo

	Property *MemberProperty

	GenericDecls []string

	MethodDefs  []*MethodDefine
	MethodDecls []*MethodDeclare
	Fields      []*FieldDeclare
}

type InterfaceInfo struct {
	typeInfo

	ClassInfo
}

type EnumInfo struct {
	typeInfo

	EnumDeclare
}
